// --------------------------
// Item/Item.ts
// --------------------------

import { EWuxing } from "../Config/Enum";
import { IEquipment } from "./Equipment";

export enum EItemType {
    Equipment = "Equipment", // 装备
    Gem = "Gem", // 宝石
    Coin = "Coin", // 铜钱
    Book_Skill = "Book_Skill", // 武学书
    Book_Attribute = "Book_Attribute", // 潜能书
    Book_EXP = "Book_EXP", // 修为书
    WoodRock = "WoodRock", // 木材/石料
    Grains = "Grains", // 食物
    SecretBox = "SecretBox", // 神秘宝箱
    



}

export enum EEquipmentType {
    Weapon = "Weapon", // 武器
    Helmet = "Helmet", // 头盔
    Armor = "Armor", // 盔甲
    Belt = "Belt", // 腰带
    Bracers = "Bracers", // 护腕
    Pendant = "Pendant", // 吊坠
    Shoes = "Shoes", // 鞋子
    Leggings = "Leggings", // 护腿
    Ring = "Ring", // 戒指
    Necklace = "Necklace", // 项链
}

// 添加中文映射函数
export function getEquipmentTypeChinese(type: EEquipmentType): string {
    const typeMap: Record<EEquipmentType, string> = {
        [EEquipmentType.Weapon]: "兵刃",
        [EEquipmentType.Helmet]: "头冠",
        [EEquipmentType.Armor]: "衣甲",
        [EEquipmentType.Belt]: "束带",
        [EEquipmentType.Bracers]: "护腕",
        [EEquipmentType.Pendant]: "腰坠",
        [EEquipmentType.Shoes]: "靴履",
        [EEquipmentType.Leggings]: "胫衣",
        [EEquipmentType.Ring]: "指环",
        [EEquipmentType.Necklace]: "颈饰"
    };
    return typeMap[type] || type;
}


// 装备品质
export enum EItemQuality {
    Common = 1,    // 普通（白）
    Uncommon=2,      // 精良（绿）
    Rare=3,          // 稀有（蓝）
    Epic=4,          // 史诗（紫）
    Legendary=5,      // 传奇（橙）
    Artifact=6,     // 神器（红）
}

// 每种品质对应一个颜色
export const ItemQualityColors: { [key in EItemQuality]: string } = {
    [EItemQuality.Common]: "#585858",      // 普通 灰色
    [EItemQuality.Uncommon]: "#1C6D1C",    // 精良 绿色
    [EItemQuality.Rare]: "#2766D6AA",         // 稀有 蓝色
    [EItemQuality.Epic]: "#8731A8",         // 史诗 紫色
    [EItemQuality.Legendary]: "#FFA500",    // 传奇 橙色
    [EItemQuality.Artifact]: "#FF0000",     // 神器 红色
};

// 基础物品接口
export interface IItem {
    id: string;
    uid: string; // 唯一ID，运行时生成
    name: string;
    count: number;
    icon: string;
    itemType: EItemType; // 物品大类
    desc: string; // 物品描述
    quality: EItemQuality; // 品质（1-6）
    stackable?: boolean; // 是否可堆叠
    // affixes?: EItemAffix[]; // 词缀列表
    // affixes_wuxing?: EItemAffix[]; // 五行属性
    //equipmentType?: EEquipmentType; // 新增装备类型字段（可选）
    price: number; // 物品价格（可选）
    level?: number; // 物品等级（可选）
}

// 添加类型守卫函数 - 这是关键！
export function isEquipment(item: IItem): item is IEquipment {
    return item.itemType === EItemType.Equipment;
}

export function hasAffixes(item: IItem): item is IItem & { affixes: EItemAffix[] } {
    return 'affixes' in item && Array.isArray((item as any).affixes);
}



// 普通词缀
export enum EAffixType {
    // 攻击类
    Attack = "Attack",
    Accuracy = "Accuracy", // 命中
    CriticalChance = "CriticalChance",
    CriticalDamage = "CriticalDamage",
    AttackSpeed = "AttackSpeed",
    AttackRange = "AttackRange",
    LifeSteal = "LifeSteal", // 吸血
    IgnoreDefense = "IgnoreDefense",
    SkillEnhance = "SkillEnhance",
    // 穿透个数
    PenetrateCount = "Penetrate",
    PenetratePercent = "PenetratePercent",
    // 连击
    ComboChance = "ComboChance",
    MF = "MF", // 幸运值

    // 防御类
    Defense = "Defense",
    Hp = "Hp",
    Dodge = "Dodge",
    HpRegen = "HpRegen", // 生命回复

    // 功能类
    Coin = "Coin", // 铜钱
    Exp = "Exp",
    Reown = "Reown", // 声望

    // 通用类
    AllBaseAttributes = "AllBaseAttributes", // 全部基础属性
    Strength = "Strength", // 
    Agility = "Agility",
    Intelligence = "Intelligence",
    InnerPower = "InnerPower",
    Vitality = "Vitality",
    WuxingEnhance = "WuxingEnhance",
    SkillLevel = "SkillLevel", // 武学等级提升
    Skill1Level = "Skill1Level", // 武学1等级提升
    Skill2Level = "Skill2Level", // 武学2等级提升
    Skill3Level = "Skill3Level", // 武学3等级提升
    CDR = "CDR", // 调息缩减
    Speed = "Speed",

    
    // Sunny = "晴天", // 晴天 火
    // Rainy = "雨天", // 雨天 水
    // //Stormy = "Stormy", // 暴风雨
    // Foggy = "有雾", // 有雾 土
    // Cloudy = "有云", // 有云 木
    // Windy = "有风", // 有风 金
    // ==================== 五行词缀 - 金 ====================
    Jin_DamageToKnockback = "Jin_DamageToKnockback", // 对击退目标伤害加深
    Jin_DamageToWoodEnemy = "Jin_DamageToWoodEnemy", // 对木系敌寇伤害+5%
    Jin_FogDaySkillDamage = "Jin_FogDaySkillDamage", // 雾天，武学伤害+10%

    // ==================== 五行词缀 - 木 ====================
    Mu_DamageToPoisoned = "Mu_DamageToPoisoned", // 对中毒目标伤害加深
    Mu_DamageToEarthEnemy = "Mu_DamageToEarthEnemy", // 对土系敌寇伤害+5%
    Mu_CloudyDaySkillDamage = "Mu_CloudyDaySkillDamage", // 阴天，武学伤害+10%

    // ==================== 五行词缀 - 水 ====================
    Shui_DamageToSlowed = "Shui_DamageToSlowed", // 对迟缓目标伤害加深
    Shui_DamageToFireEnemy = "Shui_DamageToFireEnemy", // 对火系敌寇伤害+5%
    Shui_RainDaySkillDamage = "Shui_RainDaySkillDamage", // 雨天，武学伤害+10%

    // ==================== 五行词缀 - 火 ====================
    Huo_DamageToBurning = "Huo_DamageToBurning", // 对灼烧目标伤害加深
    Huo_DamageToMetalEnemy = "Huo_DamageToMetalEnemy", // 对金系敌寇伤害+5%
    Huo_SunnyDaySkillDamage = "Huo_SunnyDaySkillDamage", // 晴天，武学伤害+10%

    // ==================== 五行词缀 - 土 ====================
    Tu_DamageToStunned = "Tu_DamageToStunned", // 对晕眩目标伤害加深
    Tu_DamageToWaterEnemy = "Tu_DamageToWaterEnemy", // 对水系敌寇伤害+5%
    Tu_WindDaySkillDamage = "Tu_WindDaySkillDamage", // 风天，武学伤害+10%

    // ==================== 通用五行词缀 ====================
    // 城墙相关
    WallHPFullAttack = "WallHPFullAttack", // 城墙满耐久攻击提升5%
    WallHPFullAttackSpeed = "WallHPFullAttackSpeed", // 城墙满耐久攻速提升5%
    WallHPLowAttack = "WallHPLowAttack", // 城墙低耐久攻击提升5%
    WallHPLowAttackSpeed = "WallHPLowAttackSpeed", // 城墙低耐久攻速提升5%
    
    // 敌人类型
    DamageIncreaseToElite = "DamageIncreaseToElite", // 对精英伤害+20%
    DamageIncreaseToGeneral = "DamageIncreaseToGeneral", // 对将军伤害+20%
    DamageIncreaseToSoldier = "DamageIncreaseToSoldier", // 对小兵伤害+20%
    
    // 血量相关
    DamageIncreaseToHighHP = "DamageIncreaseToHighHP", // 对高血量的伤害提升
    DamageIncreaseToLowHP = "DamageIncreaseToLowHP", // 对低血量的伤害提升
    
    // 控制相关
    DamageIncreaseToCCTarget = "DamageIncreaseToCCTarget", // 对受到控制目标伤害加深
    
    // 怒气相关
    RageRegen = "RageRegen", // 怒气回复+1

    // 基础属性相关
    DamageIncrease25Strength = "DamageIncrease25Strength", // 增加25%力量的伤害
    DamageIncrease25Agility = "DamageIncrease25Agility", // 增加25%敏捷的伤害
    DamageIncrease25Intelligence = "DamageIncrease25Intelligence", // 增加25%智力的伤害
}


    // 五行词缀
// export enum EWuxingAffixType {
//     // 五行词缀
//     Jin_AttackPercent_Halo = "Jin_AttackPercent_Halo", // 金属性攻击力百分比光环
//     Jin_IgnoreDefense = "Jin_IgnoreDefense", // 金属性无视防御
//     Jin_WallHPFullDamage = "Jin_WallHPFullDamage", // 金属性墙体满血伤害加成
//     DamageIncrease25Strength = "DamageIncrease25Strength", // 增加25%力量的伤害


//     Mu_CriticalChance_Halo =  "Mu_CriticalChance_Halo", // 木属性暴击率光环
//     Mu_AgilityTrueDamage = "Mu_AgilityTrueDamage", // 木属性敏捷真实伤害
//     Mu_Accuracy = "Mu_Accuracy", // 木属性命中光环
//     DamageIncrease25Agility = "DamageIncrease25Agility", // 增加25%敏捷的伤害


//     Shui_AttackSpeed_Halo = "Shui_AllAttribute_Halo", // 水属性全属性光环
//     Shui_IntelligenceTrueDamage = "Shui_IntelligenceTrueDamage", // 水属性智力真实伤害
//     Shui_CDR = "Shui_CDR", // 水属性调息缩减
//     DamageIncrease25Intelligence = "DamageIncrease25Intelligence", // 增加25%智力的伤害


//     Huo_CriticalDamage_Halo = "Huo_CriticalDamage_Halo", // 火属性暴击伤害光环
//     Huo_Vulnerability_Halo = "Huo_vulnerability_Halo", // 火属性脆弱光环
//     Huo_StrengthTrueDamage = "Huo_StrengthTrueDamage", // 火属性力量真实伤害


//     Tu_MainAttribute_Halo = "Tu_MainAttribute_Halo", // 土属性主属性光环
//     Tu_VitalityTrueDamage = "Tu_VitalityTrueDamage", // 土属性体力真实伤害
//     Tu_Defense = "Tu_Defense", // 土属性防御

//     // 五行词缀-通用
//     WallHPFullDamage = "WallHPFullDamage", // 墙体满血伤害加成
//     WallHPFullAttackSpeed = "WallHPFullAttackSpeed", // 墙体满血攻击速度加成
//     DamageIncreaseToCCTarget = "DamageIncreaseToCCTarget", // 对控制目标伤害提升
//     DamageIncreaseToElite = "DamageIncreaseToElite", // 对精英怪物伤害提升
//     DamageIncreaseToNormal = "DamageIncreaseToNormal", // 对普通怪物伤害提升
//     DamageIncreaseToBoss = "DamageIncreaseToBoss", // 对BOSS伤害提升
//     DamageIncreaseTo80HP = "DamageIncreaseTo75HP", // 对80%HP以上怪物伤害提升
//     DamageIncreaseTo20HP = "DamageIncreaseTo50HP", // 对20%HP以下怪物伤害提升
//     RageRegen = "RageRegen",





// }

// 词缀接口
export interface EItemAffix {
    type: EAffixType;
    value: number;      // 实际生成的随机数值
    isPercentage: boolean; // 是否为百分比
    description: string;  // 词缀描述
    wuxing?: EWuxing; // 五行属性
    // 是否激活
    isActive?: boolean;
}

// 新增词缀组类型
export enum EAffixGroup {
    Offensive = "Offensive",     // 攻击类词缀
    Defensive = "Defensive",     // 防御类词缀
    Utility = "Utility",         // 功能类词缀
    Universal = "Universal",     // 通用类词缀
}

// 扩展词缀配置接口 - 移除了 equipmentTypes 属性
export interface IAffixConfig {
    type: EAffixType;
    minValue: number;
    maxValue: number;
    isPercentage: boolean;
    weight: number; // 权重，控制出现概率
    rarity: number; // 稀有度 (1-5)
    groups: EAffixGroup[]; // 词缀所属组
    wuxing?: EWuxing; // 五行属性
    // 是否激活
    isActive?: boolean;
}

// 装备类型与词缀组映射
export const EquipmentTypeToAffixGroups: Record<EEquipmentType, EAffixGroup[]> = {
    [EEquipmentType.Weapon]: [EAffixGroup.Offensive, EAffixGroup.Universal],
    [EEquipmentType.Helmet]: [EAffixGroup.Offensive, EAffixGroup.Defensive, EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Armor]: [EAffixGroup.Defensive, EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Belt]: [EAffixGroup.Offensive, EAffixGroup.Defensive, EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Bracers]: [EAffixGroup.Offensive, EAffixGroup.Universal],
    [EEquipmentType.Pendant]: [EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Shoes]: [EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Leggings]: [EAffixGroup.Defensive, EAffixGroup.Utility, EAffixGroup.Universal],
    [EEquipmentType.Ring]: [EAffixGroup.Offensive, EAffixGroup.Universal],
    [EEquipmentType.Necklace]: [EAffixGroup.Offensive, EAffixGroup.Defensive,EAffixGroup.Universal],
};

// 词缀池
export const AffixPool: IAffixConfig[] = [
    // ==================== Offensive攻击类词缀 ====================
    { type: EAffixType.Attack, minValue: 5, maxValue: 20, isPercentage: false, weight: 10, rarity: 1, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.CriticalChance, minValue: 0.01, maxValue: 0.08, isPercentage: true, weight: 10, rarity: 2, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.CriticalDamage, minValue: 0.1, maxValue: 0.3, isPercentage: true, weight: 10, rarity: 2, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.AttackSpeed, minValue: 0.05, maxValue: 0.2, isPercentage: true, weight: 10, rarity: 2, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.IgnoreDefense, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 4, groups: [EAffixGroup.Offensive] },
    //{ type: EAffixType.LifeSteal, minValue: 0.001, maxValue: 0.005, isPercentage: true, weight: 2, rarity: 5, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.Accuracy, minValue: 0.05, maxValue: 0.2, isPercentage: true, weight: 10, rarity: 2, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.AttackRange, minValue: 5, maxValue: 20, isPercentage: false, weight: 5, rarity: 4, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.SkillEnhance, minValue: 0.01, maxValue: 0.05, isPercentage: true, weight: 2, rarity: 4, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.PenetrateCount, minValue: 1, maxValue: 2, isPercentage: false, weight: 5, rarity: 3, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.PenetratePercent, minValue: 0.05, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Offensive] },
    { type: EAffixType.ComboChance, minValue: 0.01, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Offensive] },



    // ==================== Defensive防御类词缀 ====================
    { type: EAffixType.Defense, minValue: 5, maxValue: 20, isPercentage: false, weight: 1, rarity: 1, groups: [EAffixGroup.Defensive] },
    { type: EAffixType.Hp, minValue: 5, maxValue: 100, isPercentage: false, weight: 1, rarity: 1, groups: [EAffixGroup.Defensive] },
    { type: EAffixType.Dodge, minValue: 0.01, maxValue: 0.05, isPercentage: true, weight: 1, rarity: 3, groups: [EAffixGroup.Defensive] },
    //{ type: EAffixType.HpRegen, minValue: 0.1, maxValue: 1, isPercentage: false, weight: 10, rarity: 3, groups: [EAffixGroup.Defensive] },

    // ==================== Universal通用类词缀 ====================
    { type: EAffixType.Strength, minValue: 1, maxValue: 20, isPercentage: false, weight: 10, rarity: 1, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Agility, minValue: 1, maxValue: 20, isPercentage: false, weight: 10, rarity: 1, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Intelligence, minValue: 1, maxValue: 20, isPercentage: false, weight: 10, rarity: 1, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Vitality, minValue: 1, maxValue: 20, isPercentage: false, weight: 10, rarity: 1, groups: [EAffixGroup.Universal] },
    { type: EAffixType.InnerPower, minValue: 1, maxValue: 5, isPercentage: false, weight: 2, rarity: 3, groups: [EAffixGroup.Universal] },
    { type: EAffixType.AllBaseAttributes, minValue: 1, maxValue: 20, isPercentage: false, weight: 3, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.WuxingEnhance, minValue: 0.01, maxValue: 0.1, isPercentage: true, weight: 10, rarity: 4, groups: [EAffixGroup.Universal] },
    { type: EAffixType.SkillLevel, minValue: 1, maxValue: 2, isPercentage: false, weight: 1, rarity: 5, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Skill1Level, minValue: 1, maxValue: 2, isPercentage: false, weight: 2, rarity: 5, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Skill2Level, minValue: 1, maxValue: 2, isPercentage: false, weight: 2, rarity: 5, groups: [EAffixGroup.Universal] },
    { type: EAffixType.Skill3Level, minValue: 1, maxValue: 2, isPercentage: false, weight: 2, rarity: 5, groups: [EAffixGroup.Universal] },

    { type: EAffixType.Speed, minValue: 0.05, maxValue: 0.2, isPercentage: true, weight: 1, rarity: 3, groups: [EAffixGroup.Universal] },
    { type: EAffixType.CDR, minValue: 0.01, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 4, groups: [EAffixGroup.Universal] },


    // ==================== Utility功能类词缀 ====================
    { type: EAffixType.Coin, minValue: 0.05, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Utility] },
    { type: EAffixType.Exp, minValue: 0.05, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Utility] },
    { type: EAffixType.Reown, minValue: 0.05, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Utility] },
    { type: EAffixType.MF, minValue: 1, maxValue: 5, isPercentage: false, weight: 2, rarity: 4, groups: [EAffixGroup.Utility] },
];

export const WuxingAffixPool: IAffixConfig[] = [
                                                                                                   
    // 金系词缀
    { type: EAffixType.Jin_DamageToKnockback, minValue: 0.15, maxValue: 0.3, isPercentage: true, weight: 8, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Jin },
    { type: EAffixType.Jin_DamageToWoodEnemy, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Jin },
    { type: EAffixType.Jin_FogDaySkillDamage, minValue: 0.1, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Universal], wuxing: EWuxing.Jin },

    // 木系词缀
    { type: EAffixType.Mu_DamageToPoisoned, minValue: 0.15, maxValue: 0.3, isPercentage: true, weight: 8, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Mu },
    { type: EAffixType.Mu_DamageToEarthEnemy, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Mu },
    { type: EAffixType.Mu_CloudyDaySkillDamage, minValue: 0.1, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Universal], wuxing: EWuxing.Mu },

    // 水系词缀
    { type: EAffixType.Shui_DamageToSlowed, minValue: 0.15, maxValue: 0.3, isPercentage: true, weight: 8, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Shui },
    { type: EAffixType.Shui_DamageToFireEnemy, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Shui },
    { type: EAffixType.Shui_RainDaySkillDamage, minValue: 0.1, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Universal], wuxing: EWuxing.Shui },

    // 火系词缀
    { type: EAffixType.Huo_DamageToBurning, minValue: 0.15, maxValue: 0.3, isPercentage: true, weight: 8, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Huo },
    { type: EAffixType.Huo_DamageToMetalEnemy, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Huo },
    { type: EAffixType.Huo_SunnyDaySkillDamage, minValue: 0.1, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Universal], wuxing: EWuxing.Huo },

    // 土系词缀
    { type: EAffixType.Tu_DamageToStunned, minValue: 0.15, maxValue: 0.3, isPercentage: true, weight: 8, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Tu },
    { type: EAffixType.Tu_DamageToWaterEnemy, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal], wuxing: EWuxing.Tu },
    { type: EAffixType.Tu_WindDaySkillDamage, minValue: 0.1, maxValue: 0.15, isPercentage: true, weight: 5, rarity: 3, groups: [EAffixGroup.Universal], wuxing: EWuxing.Tu },

    // 通用五行词缀
    { type: EAffixType.WallHPFullAttack, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.WallHPFullAttackSpeed, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.WallHPLowAttack, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.WallHPLowAttackSpeed, minValue: 0.05, maxValue: 0.1, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToElite, minValue: 0.2, maxValue: 0.3, isPercentage: true, weight: 4, rarity: 3, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToGeneral, minValue: 0.2, maxValue: 0.3, isPercentage: true, weight: 4, rarity: 3, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToSoldier, minValue: 0.2, maxValue: 0.3, isPercentage: true, weight: 4, rarity: 3, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToHighHP, minValue: 0.15, maxValue: 0.25, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToLowHP, minValue: 0.15, maxValue: 0.25, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncreaseToCCTarget, minValue: 0.1, maxValue: 0.2, isPercentage: true, weight: 6, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.RageRegen, minValue: 1, maxValue: 1, isPercentage: false, weight: 3, rarity: 4, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncrease25Strength, minValue: 0.05, maxValue: 0.25, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncrease25Agility, minValue: 0.05, maxValue: 0.25, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
    { type: EAffixType.DamageIncrease25Intelligence, minValue: 0.05, maxValue: 0.25, isPercentage: true, weight: 5, rarity: 2, groups: [EAffixGroup.Universal] },
]